package com.cskaoyan;

import com.cskaoyan.bean.Account;
import com.cskaoyan.mapper.AccountMapper;
import com.cskaoyan.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;

public class Main {

    // 使用Mybatis的动态代理
    // 动态代理是一种设计模式 设计模式前人编写代码，设计代码结构的一种经验
    public static void main(String[] args) {

        // 1. 获取sqlSession
        SqlSession sqlSession = MybatisUtils.getSqlSession();


        // 2. 获取代理对象 谁的代理对象呢？AccountMapper的代理对象，就相当于AccountMapper的实现类
        // 通过动态获取的所有的实例类型都是MapperProxy
        AccountMapper accountMapper = sqlSession.getMapper(AccountMapper.class);

        // 3. 执行方法
        Account account = accountMapper.selectAccountById(6);

        System.out.println(account);

    }
}
